﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Renci.Data.Interop.OpenGIS.Iso.tc211_2005.gco;

namespace Renci.Data.Interop.OpenGIS.Iso.tc211_2005.gmd
{
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(MD_ServiceIdentification_Type))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(MD_DataIdentification_Type))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.3038")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.isotc211.org/2005/gmd")]
    public abstract class AbstractMD_Identification_Type : AbstractObject_Type
    {
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("citation")]
        public CI_Citation_PropertyType Citation { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("@abstract")]
        public CharacterString_PropertyType @abstract { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("purpose")]
        public CharacterString_PropertyType Purpose { get; set; }

        private System.Collections.ObjectModel.Collection<CharacterString_PropertyType> _credit = new System.Collections.ObjectModel.Collection<CharacterString_PropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("credit")]
        public System.Collections.ObjectModel.Collection<CharacterString_PropertyType> Credit { get { return this._credit; } }

        private System.Collections.ObjectModel.Collection<MD_ProgressCode_PropertyType> _status = new System.Collections.ObjectModel.Collection<MD_ProgressCode_PropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("status")]
        public System.Collections.ObjectModel.Collection<MD_ProgressCode_PropertyType> Status { get { return this._status; } }

        private System.Collections.ObjectModel.Collection<CI_ResponsibleParty_PropertyType> _pointOfContact = new System.Collections.ObjectModel.Collection<CI_ResponsibleParty_PropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("pointOfContact")]
        public System.Collections.ObjectModel.Collection<CI_ResponsibleParty_PropertyType> PointOfContact { get { return this._pointOfContact; } }

        private System.Collections.ObjectModel.Collection<MD_MaintenanceInformation_PropertyType> _resourceMaintenance = new System.Collections.ObjectModel.Collection<MD_MaintenanceInformation_PropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("resourceMaintenance")]
        public System.Collections.ObjectModel.Collection<MD_MaintenanceInformation_PropertyType> ResourceMaintenance { get { return this._resourceMaintenance; } }

        private System.Collections.ObjectModel.Collection<MD_BrowseGraphic_PropertyType> _graphicOverview = new System.Collections.ObjectModel.Collection<MD_BrowseGraphic_PropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("graphicOverview")]
        public System.Collections.ObjectModel.Collection<MD_BrowseGraphic_PropertyType> GraphicOverview { get { return this._graphicOverview; } }

        private System.Collections.ObjectModel.Collection<MD_Format_PropertyType> _resourceFormat = new System.Collections.ObjectModel.Collection<MD_Format_PropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("resourceFormat")]
        public System.Collections.ObjectModel.Collection<MD_Format_PropertyType> ResourceFormat { get { return this._resourceFormat; } }

        private System.Collections.ObjectModel.Collection<MD_Keywords_PropertyType> _descriptiveKeywords = new System.Collections.ObjectModel.Collection<MD_Keywords_PropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("descriptiveKeywords")]
        public System.Collections.ObjectModel.Collection<MD_Keywords_PropertyType> DescriptiveKeywords { get { return this._descriptiveKeywords; } }

        private System.Collections.ObjectModel.Collection<MD_Usage_PropertyType> _resourceSpecificUsage = new System.Collections.ObjectModel.Collection<MD_Usage_PropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("resourceSpecificUsage")]
        public System.Collections.ObjectModel.Collection<MD_Usage_PropertyType> ResourceSpecificUsage { get { return this._resourceSpecificUsage; } }

        private System.Collections.ObjectModel.Collection<MD_Constraints_PropertyType> _resourceConstraints = new System.Collections.ObjectModel.Collection<MD_Constraints_PropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("resourceConstraints")]
        public System.Collections.ObjectModel.Collection<MD_Constraints_PropertyType> ResourceConstraints { get { return this._resourceConstraints; } }

        private System.Collections.ObjectModel.Collection<MD_AggregateInformation_PropertyType> _aggregationInfo = new System.Collections.ObjectModel.Collection<MD_AggregateInformation_PropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("aggregationInfo")]
        public System.Collections.ObjectModel.Collection<MD_AggregateInformation_PropertyType> AggregationInfo { get { return this._aggregationInfo; } }
    }
}
